为什么要加密
加密并不是为了装逼,不全是为了闭源,而是为了防止熊孩子捣乱。
简单的字符串加密
通过字符串的++–完成字符串加密,步骤倒过来写一遍就是解密。
GML实现代码
函数:scrEncrypt
功能:加密字符串
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| var _pass = argument[0]; var _str = argument[1]; var _word = ""; var j = 1; for(var i=1; i<=string_length(_str); i++) { var char = ord(string_char_at(_str, i)) + ord(string_char_at(_pass, j)); _word += string(chr(char)); if(j>string_length(_pass)) j = 0; } if(argument[2]) return base64_encode(_word); else return _word;
|
函数:scrDecrypt
功能:解密字符串
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| var _pass = argument[0]; if(argument[2]) var _str = base64_decode(argument[1]); else var _str = argument[1]; var _word = ""; var j = 1; for(var i=1; i<=string_length(_str); i++) { var char = ord(string_char_at(_str, i)) - ord(string_char_at(_pass, j)); _word += string(chr(char)); if(j>string_length(_pass)) j = 0; } return _word;
|
使用方法很简单:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| hello = scrEncrypt("1126390395", "Hello World!", true); show_debug_message("Base64加密\n" + hello); word = scrDecrypt("1126390395", hello, true); show_debug_message("Base64解密\n" + word); hello = scrEncrypt("Cricket的空间", "http://www.huisai.top", false); show_debug_message("简单加密\n" + hello); word = scrDecrypt("Cricket的空间", hello, false); show_debug_message("简单解密\n" + word); word = scrDecrypt("http://www.huisai.top", "Düü?¢???é?í?DY??é??ü×?", false); show_debug_message("简单解密\n" + word);
|